﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Manso.cBot.Common
{
    /// <summary>
    /// You must implement these interface in all your commands
    /// </summary>
    public interface ICommand
    {
        /// <summary>
        /// Channels to be listened
        /// </summary>
        ListenToEnum ListenTo { get; }
        /// <summary>
        /// Command
        /// </summary>
        String Command { get; }            
        /// <summary>
        /// Help information
        /// </summary>
        String Help { get; }
        /// <summary>
        /// Usage information
        /// </summary>
        String Usage {  get; }
        /// <summary>
        /// Access level needed to have access to this command
        /// </summary>
        AccessControlLevel AccessLevel { get; }
        /// <summary>
        /// Execute command
        /// </summary>
        /// <param name="args">Chat args</param>
        /// <param name="executedBy">Executed by character</param>
        /// <param name="listenTo">Channel from</param>
        void ExecuteCommand(String[] args, String executedBy, ListenToEnum listenTo);
    }
}